package com.canyou.basic.entity.sms;

import lombok.Getter;

import java.util.Arrays;

/**
 * 短信发送状态
 *
 * @author fy
 * @date 2021/1/29 15:09
 */
@Getter
public enum SmsStatusEnum {

    /**
     * 等待回执
     */
    WAITING_RECEIPT(1, "等待回执"),

    /**
     * 发送失败
     */
    FAILED(2, "发送失败"),

    /**
     * 发送成功
     */
    SUCCESS(3, "发送成功"),

    ;

    /**
     * 根据 枚举类型值 获取对应类型枚举
     *
     * @param value
     * @return
     */
    public static SmsStatusEnum valueOf(final Integer value) {
        return Arrays.stream(SmsStatusEnum.values())
                .filter(enu -> enu.getValue().equals(value))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的短信发送状态"));
    }

    public static SmsStatusEnum nameOf(final String name) {
        return Arrays.stream(SmsStatusEnum.values())
                .filter(enu -> enu.getName().equals(name))
                .findFirst()
                .orElseThrow(() -> new RuntimeException("错误的短信发送状态"));
    }

    public static String getName(final Integer value) {
        return SmsStatusEnum.valueOf(value).getName();
    }

    SmsStatusEnum(Integer value, String name) {
        this.value = value;
        this.name = name;
    }

    /**
     * 发送状态值
     */
    private Integer value;

    /**
     * 发送状态
     */
    private String name;

}
